public member function
<atomic>

std::atomic::operator T

operator T() const volatile noexcept;operator T() const noexcept;
访问存储的值
返回 val存储的值

这是一个类型转换运算符:在期望其包含类型(T)的表达式中计算 atomic 对象时,会调用此成员函数,访问包含的值。

此操作是原子的,并使用顺序一致性memory_order_seq_cst)。要使用不同的内存顺序检索值,请参阅 atomic::load

参数



返回值

包含的值。
Tatomic 的模板参数(包含值的类型)。

返回值

val

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// atomic::operator=/operator T example:
#include <iostream>       // std::cout
#include <atomic>         // std::atomic
#include <thread>         // std::thread, std::this_thread::yield

std::atomic<int> foo = 0;
std::atomic<int> bar = 0;

void set_foo(int x) {
  foo = x;
}
void copy_foo_to_bar () {
  while (foo==0) std::this_thread::yield();
  bar = static_cast<int>(foo);
}
void print_bar() {
  while (bar==0) std::this_thread::yield();
  std::cout << "bar: " << bar << '\n';
}

int main ()
{
  std::thread first (print_bar);
  std::thread second (set_foo,10);
  std::thread third (copy_foo_to_bar);
  first.join();
  second.join();
  third.join();
  return 0;
}

输出
bar: 10


数据竞争

无数据竞争(原子操作)。该操作使用*顺序一致性*(memory_order_seq_cst)。

异常安全

无异常保证: 绝不抛出异常。

另见